//package com.service.scheduling.task;
//
//import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
//import com.service.dao.model.MemberBorrow;
//import com.service.dao.model.SysBorrowConfig;
//import com.service.scheduling.service.MemberBorrowService;
//import com.service.scheduling.service.SysBorrowConfigService;
//import com.service.scheduling.utils.DateUtil;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.scheduling.annotation.Scheduled;
//import org.springframework.stereotype.Component;
//import org.springframework.util.ObjectUtils;
//
//import java.math.BigDecimal;
//import java.text.ParseException;
//import java.util.Date;
//import java.util.List;
//
//@Slf4j
//@Component
//public class BorrowScanTask {
//
//    @Autowired
//    private MemberBorrowService memberBorrowService;
//
//    @Autowired
//    private SysBorrowConfigService sysBorrowConfigService;
//
//    /**
//     * 扫描未完成还贷的借贷订单
//     */
//    @Scheduled(cron = "0 */1 * * * ?")
//    public void scanBorrow() {
//        List<MemberBorrow> borrowList = memberBorrowService.listNotFinishBorrow();
//        //获取借贷系统配置信息
//        SysBorrowConfig sysBorrowConfig = sysBorrowConfigService.getLastBorrowConfig();
//        if(CollectionUtils.isEmpty(borrowList)){
//            log.info("未查询到用户借贷记录");
//            return;
//        }
//        if(ObjectUtils.isEmpty(sysBorrowConfig)){
//            log.info("系统未配置借贷信息");
//            return;
//        }
//        borrowList.parallelStream().forEach(item->{
//            //判断当前记录还款时间
//            Date payBackDate = item.getPayBackDate();
//            long currentDate = System.currentTimeMillis();
//            if((currentDate - payBackDate.getTime()) < 0){
//                /**
//                 * 还未到还款日期
//                 */
//                return;
//            }else if((currentDate - payBackDate.getTime()) == 0){
//                /**
//                 * 提示目前正处于还款限定日期
//                 */
//
//            }else if((currentDate - payBackDate.getTime()) > 0){
//                /**
//                 * 提示还款延期 延期结果 后续按日息增加还款金额
//                 */
//                //计算延期天数所需手续费 累加到累计还款中
//                int extensionDays = 0;
//                try {
//                    extensionDays = DateUtil.daysBetween(new Date(),payBackDate);
//                } catch (ParseException e) {
//                    e.printStackTrace();
//                }
//                if(extensionDays > 1){
//                    BigDecimal extensionFee = sysBorrowConfig.getDailyScale().multiply(item.getBorrowNum());
//                    item.setTotalReturnNum(extensionFee.add(item.getTotalReturnNum()));
//                }
//                item.setBorrowStatus(2);//设置状态为延期
//                memberBorrowService.updateById(item);//更新数据库
//            }
//        });
//    }
//}
